%module CEGUICombobox

%{
#include "elements/CEGUICombobox.h"
	%}

//#include "../CEGUIBase.h"
//#include "../CEGUIWindow.h"
//#include "CEGUIComboboxProperties.h"

%import "../CEGUIString.i"
%import "../CEGUIWindow.i"
%import "CEGUIListboxItem.i"


namespace CEGUI
{

class Combobox : public Window
{
public:

//	bool	isDropDownListVisible(void) const;

//    Editbox* getEditbox() const;

//    PushButton* getPushButton() const;

//    ComboDropList* getDropList() const;

//	bool	hasInputFocus(void) const;

//	bool	isReadOnly(void) const;

//	bool	isTextValid(void) const;

//	const String&	getValidationString(void) const;

//	size_t	getSelectionStartIndex(void) const;

//	size_t	getSelectionEndIndex(void) const;

//	size_t	getSelectionLength(void) const;

//	size_t	getMaxTextLength(void) const;


	/*************************************************************************
		List Accessors
	*************************************************************************/

	size_t	getItemCount(void) const;

	ListboxItem*	getSelectedItem(void) const;

	ListboxItem*	getListboxItemFromIndex(size_t index) const;

	size_t	getItemIndex(const ListboxItem* item) const;

	bool	isSortEnabled(void) const;

	bool	isItemSelected(size_t index) const;

	ListboxItem*	findItemWithText(const String& text, const ListboxItem* start_item);

	bool	isListboxItemInList(const ListboxItem* item) const;

/*************************************************************************
		Editbox Manipulators
	*************************************************************************/

	void	setReadOnly(bool setting);

//	void	setValidationString(const String& validation_string);

//	void	setCaratIndex(size_t carat_pos);

//	void	setSelection(size_t start_pos, size_t end_pos);

//	void	setMaxTextLength(size_t max_len);

/*************************************************************************
		List Manipulators
	*************************************************************************/

	void	resetList(void);

	void	addItem(ListboxItem* item);

	void	insertItem(ListboxItem* item, const ListboxItem* position);

	void	removeItem(const ListboxItem* item);

	void	clearAllSelections(void);

	void	setSortingEnabled(bool setting);

	void	setShowVertScrollbar(bool setting);

	void	setShowHorzScrollbar(bool setting);

	void	setItemSelectState(ListboxItem* item, bool state);

	void	setItemSelectState(size_t item_index, bool state);

};

} // End of  CEGUI namespace section
